4a8de28fdd72a4dd2f492d4f9ec1fd8b611119be,AndResGuard-core/src/main/java/com/tencent/mm/androlib/ResourceRepackage.java,ResourceRepackage,generalRaw7zip,#,115
Before Change
String path = outPath + File.separator + "*";
String cmd = Utils.isPresent(sevenZipPath) ? sevenZipPath : TypedValue.COMMAND_7ZIP;
cmd += " a -tzip " + mSignedWith7ZipApk.getAbsolutePath() + " " + path + " -mx9";
pro = Runtime.getRuntime().exec(cmd);
InputStreamReader ir = new InputStreamReader(pro.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
//如果�读会有问题,被阻塞
while (input.readLine() != null) {
;
}
//destroy the stream
if (pro != null) {
pro.waitFor();
pro.destroy();
}
}
After Change
private void generalRaw7zip() throws IOException, InterruptedException {
System.out.printf("general the raw 7zip file\n");
String outPath = m7zipOutPutDir.getAbsoluteFile().getAbsolutePath();
String path = outPath + File.separator + "*";
String cmd = Utils.isPresent(sevenZipPath) ? sevenZipPath : TypedValue.COMMAND_7ZIP;
ProcessBuilder pb = new ProcessBuilder(cmd, "a -tzip", mSignedWith7ZipApk.getAbsolutePath(), path, "-mx9");
Process pro = pb.start();
InputStreamReader ir = new InputStreamReader(pro.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
//如果�读会有问题,被阻塞
while (input.readLine() != null) {
}
//destroy the stream
pro.waitFor();
pro.destroy();
}
private void addStoredFileIn7Zip(ArrayList<String> storedFiles) throws IOException, InterruptedException {